package com.rayboo.example.collections.map;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/**
 * TreeMap示例
 *
 * @author ray
 * @since 2019/07/25
 *
 * <p>TreeMap是基于Red-Black树的NavigableMap实现。
 * 它根据其键的自然顺序排序。
 * TreeMap类实现类似于HashMap 类的Map接口。
 * 它们之间的主要区别在于HashMap是一个无序集合，而TreeMap按其键的升序排序。
 * TreeMap是非同步的集合类，这意味着除非明确同步，否则它不适合线程安全操作。
 *
 * <p>https://beginnersbook.com/2013/12/treemap-in-java-with-example/
 */
public class TreeMapExample {

    public static void main(String args[]) {

        /* This is how to declare TreeMap */
        TreeMap<Integer, String> tmap = new TreeMap<Integer, String>();

        /*Adding elements to TreeMap*/
        tmap.put(1, "Data1");
        tmap.put(23, "Data2");
        tmap.put(70, "Data3");
        tmap.put(4, "Data4");
        tmap.put(2, "Data5");

        /* Display content using Iterator*/
        Set set = tmap.entrySet();
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            Map.Entry entry = (Map.Entry) iterator.next();
            System.out.print("key is: " + entry.getKey() + " & Value is: ");
            System.out.println(entry.getValue());
        }

    }
}
